HDCP (High-bandwidth Digital Content Protection) is a standard for protecting digital content over certain interfaces; between, for example, a set-top box (STB) transmitting audio and video over HDMI (High Definition Multimedia Interface) and a television receiving HDMI. Protection is accomplished by encrypting the data before it leaves the transmitter. A legitimate receiver then decrypts the data.
HDCP-protected interfaces can include, for example, HDMI, Digital Visual Interface (DVI), Unified Display Interface (UDI), Giga-bit Video Interface (GVIF), and DisplayPort. HDCP requirements are set forth in the HDCP specification, which is available from Digital Content Protection LLC. Revision 1.4 (July 2009) of the HDCP specification is incorporated by reference herein.
Successful decryption requires strict authentication and synchronization between transmitter and receiver. Should there be a loss of authentication or synchronization, video will be unintelligible (e.g., a snowy picture). Therefore, it is imperative that a verification mechanism be in place for continuously monitoring the link so that corrective action can be taken should a loss of authentication or synchronization occur.
Synchronization loss, while relatively uncommon, provides a negative experience for a viewer when it occurs in practice. By way of illustration, sometimes synchronization loss may be caused by imperfect firmware in an STB which results in problems or incompatibilities with certain models of televisions; other times, imperfect firmware in certain televisions may make them particularly sensitive. Other exemplary causes may include strong electromagnetic interference, or hardware-related causes such as issues with the HDMI cable (e.g., excessive length and/or poor quality) in combination with a high resolution video format (higher resolutions have a higher clock speed over the HDMI cable), or a connector compromised in some way. Where synchronization loss is associated with hardware-related causes, an excessive problem for a particular subscriber will likely be corrected by replacing the hardware, but minor physical compromises or conditions whereby a snowy picture is only induced occasionally may go uncorrected for extended periods of time.
Naturally, synchronization loss cannot be corrected by an HDCP transmitter until the out-of-sync condition is detected by the HDCP transmitter. The mechanism defined by the original HDCP specification provides a computational check in which both transmitter and receiver maintain a 16-bit Ri value that is updated every 128 frames. The transmitter, in a HDCP link maintenance loop usually implemented as a software routine, compares its Ri value with the Ri value read from the receiver. A mismatch indicates that the receiver may have lost authentication and corrective action should be taken. This Ri check is adequate for detecting loss of authentication, but has limitations for detecting synchronization loss.
In an effort to improve upon shortcomings of the Ri mechanism, the HDCP 1.1 specification introduced a feature called Enhanced Link Verification, a computational check in which both transmitter and receiver maintain an 8-bit Pj value. Unlike the Ri value, the Pj value is based upon the value of a decrypted video pixel. The HDCP specification provides that for every 16th frame counter increment, the decrypted value of channel zero of the first pixel is combined with the least significant byte Rj using the XOR operation, and the result is made available on the Pj port. This makes detecting the ability of the receiver to decrypt much more deterministic. Also, Pj is updated more often than Ri, every 16 frames rather than every 128 frames. The use of Enhanced Link Verification significantly reduces the time required for a typical HDCP transmitter to detect an out-of-sync condition. Enhanced Link Verification was not in the original HDCP specification, and accordingly it is not supported by all HDCP devices.
Enhanced Link Verification was introduced into the HDCP 1.1 specification along with other enhancements (Enhanced Encryption Status Signaling, Advance Cipher), which together are known as the “1.1 features” or “1.1 feature set.” An HDCP receiver's support for the entire 1.1 feature set is indicated by a single bit value (1.1_FEATURES) that is determined (e.g., by the receiver's manufacturer) and stored in the receiver's Bcaps register. An HDCP receiver must support the entire 1.1 feature set in order for the 1.1_FEATURES bit to be set to a value of 1 (true) in the Bcaps register.
Some HDCP receivers fully support the entire 1.1 feature set and indicate this to the transmitter by setting the 1.1_FEATURES bit. Other receivers do not support any of the 1.1 features and therefore do not set the 1.1_FEATURES bit. There is a third category of HDCP receivers that fully support Enhanced Link Verification (and perhaps other portions of the 1.1 feature set), but that do not set the 1.1_FEATURES bit in the Bcaps register; for example, perhaps because the receiver's manufacturer encountered interoperability issues with some portion of the 1.1 feature set other than Enhanced Link Verification. For this third category of HDCP receivers, synchronization loss could be more quickly detected using Enhanced Link Verification. However, conventional HDCP transmitters relying solely on the receiver's 1.1_FEATURES bit are unable to detect that these receivers support Enhanced Link Verification, and accordingly the transmitters do not attempt to use Enhanced Link Verification.